<?php

/**
 * Esta classe é o controller da Ficha Ceatox. Responsável por chamar as funções e views, efetuando as chamadas de models
 * @author Equipe de desenvolvimento APH
 * @version 1.0
 * @copyright Prefeitura de Fortaleza
 * @access public
 * @package Model
 * @subpackage ceatox
 */
require_once APPPATH . 'controllers/base/BaseController.php';

class Ceatox extends BaseController {

    function Ceatox($agente = null) {
        parent::Controller();
        $this->load->model('ceatox/ceatox_model', 'ceatox_m');
        $this->load->model('cadastro/paciente_model', 'paciente_m');
        $this->load->library('mensagem');
        $this->load->library('utilitario');
        $this->load->library('validation');
        $this->agente = $agente;
    }

    /**
     * Função
     * @name index
     * @author Equipe de desenvolvimento APH
     * @access public
     * @return void
     * @param void
     */
    function index() {
        $this->pesquisar();
    }

    function novo() {

        $data['valor'] = $this->retornaUltimaFicha();
        $data['chave'] = 0;
        $data['chave2'] = 0;
        $data['acao'] = 0;
        $data['listaTelefonico'] = $this->ceatox_m->listarGrupoResposta(1);
        $data['listaHospitalar'] = $this->ceatox_m->listarGrupoResposta(2);
        $data['listaTipoOcorrencia'] = $this->ceatox_m->listarGrupoResposta(3);
        $data['listaCircunstancia'] = $this->ceatox_m->listarGrupoResposta(4);
        $data['listaZona'] = $this->ceatox_m->listarGrupoResposta(5);
        $data['listaLocal'] = $this->ceatox_m->listarGrupoResposta(6);
        $data['listaVia'] = $this->ceatox_m->listarGrupoResposta(7);
        $data['listaTipo'] = $this->ceatox_m->listarGrupoResposta(8);
        $data['listaAgenteToxico'] = $this->ceatox_m->listarGrupoResposta(9);
        $data['listaCentro'] = $this->ceatox_m->listarCentro();
        $data['listaTratamentoA'] = $this->ceatox_m->listarGrupoResposta(10);
        $data['listaTratamentoB'] = $this->ceatox_m->listarGrupoResposta(11);
        $data['listaTratamentoC'] = $this->ceatox_m->listarGrupoResposta(12);
        $data['listaManifClinica'] = $this->ceatox_m->listarGrupoResposta(13);
        $data['listaInternacao'] = $this->ceatox_m->listarGrupoResposta(14);
        $data['listaAnaliseToxicologica'] = $this->ceatox_m->listarGrupoResposta(15);
        $data['listaEvolucao'] = $this->ceatox_m->listarGrupoResposta(16);
        $data['listaAvaliacao'] = $this->ceatox_m->listarGrupoResposta(17);
        $this->loadView('ceatox/ceatox-ficha', $data);
    }

    function pesquisar($args = array()) {

        $this->loadView('ceatox/ceatox-lista');
    }

    function retornaUltimaFicha() {

        $valor = $this->ceatox_m->retornaUltimaFicha();
        if ($valor != null) {
            return $valor + 1;
        } else {
            return 1;
        }
    }

    function excluirobservacao($ficha_id, $evolucao_id) {

        if ($this->ceatox_m->excluirobservacao($evolucao_id)) {
            $data['mensagem'] = 'Observa&ccedil;&atilde;o deletada com sucesso.';
        } else {
            $data['mensagem'] = 'Erro ao deletar Observa&ccedil;&atilde;o . Opera&ccedil;&atilde;o cancelada.';
        }
        $data['ficha'] = new ceatox_model($ficha_id);
        $data['lista'] = $this->ceatox_m->listarobservacao($ficha_id);
        $this->session->set_flashdata('message', $data['mensagem']);
        redirect(base_url() . "ceatox/ceatox/pesquisarobservacao/$ficha_id", $data);
    }

    function excluirevolucao($ficha_id, $evolucao_id) {
        if ($this->ceatox_m->excluirevolucao($evolucao_id)) {
            $data['mensagem'] = 'Evolu&ccedil;&atilde;o deletada com sucesso.';
        } else {
            $data['mensagem'] = 'Erro ao deletar Evolu&ccedil;&atilde;o . Opera&ccedil;&atilde;o cancelada.';
        }
        $data['ficha'] = new ceatox_model($ficha_id);
        $data['listaEvolucao'] = $this->ceatox_m->listarGrupoResposta(16);
        $data['lista'] = $this->ceatox_m->listarevolucao($ficha_id);
        $this->session->set_flashdata('message', $data['mensagem']);
        redirect(base_url() . "ceatox/ceatox/evolucao/$ficha_id", $data);
    }

    function excluirficha($ficha_id) {
        if ($this->ceatox_m->deletarficha($ficha_id)) {
            $data['mensagem'] = 'Ficha deletada com sucesso.';
        } else {
            $data['mensagem'] = 'Erro ao deletar Ficha . Opera&ccedil;&atilde;o cancelada.';
        }
        $this->session->set_flashdata('message', $data['mensagem']);
        redirect(base_url() . "ceatox/ceatox", $data);
    }

    function evolucao($ficha_id) {
        $data['ficha'] = new ceatox_model($ficha_id);
        $data['listaEvolucao'] = $this->ceatox_m->listarGrupoResposta(16);
        $data['lista'] = $this->ceatox_m->listarevolucao($ficha_id);

        $this->loadView('ceatox/ceatox-ficha-evolucao', $data);
    }

    function gravar() {


        if ($_POST['acao'] == 0) {
            $ficha_id = $this->ceatox_m->criaFicha();
            $paciente_id = $this->paciente_m->gravarPaciente($_POST);
            $solicitante_id = $this->ceatox_m->gravarSolicitante($_POST);
        } else {
            $ficha_id = $_POST['fichaId'];
            $paciente_id = $this->paciente_m->gravarPaciente($_POST);
            $solicitante_id = $this->ceatox_m->gravarSolicitante($_POST);
//            var_dump($paciente_id);
//            var_dump($solicitante_id);
//            die;
        }
        if ($this->ceatox_m->gravar($ficha_id, $paciente_id, $solicitante_id) && $this->ceatox_m->gravarAgente($ficha_id) && $this->ceatox_m->gravarTratamento($ficha_id)) {
            if ($_POST['acao'] == 0)
                $data['mensagem'] = 'Ficha de notifica&ccedil;&atilde;o cadastrada com sucesso.';
            else
                $data['mensagem'] = 'Ficha de notifica&ccedil;&atilde;o alterada com sucesso.';
        }

        else {
            $data['mensagem'] = 'Erro ao cadastrar ficha de notifica&ccedil;&atilde;o . Opera&ccedil;&atilde;o cancelada.';
        }
//          $this->loadView('ceatox/ceatox-lista');
        $this->session->set_flashdata('message', $data['mensagem']);
        redirect(base_url() . "ceatox/ceatox", $data);
    }

    function gravarobservacao() {
        $ficha_id = $_POST['txtFichaID'];
        if ($this->ceatox_m->gravarobservacao()) {
            $data['mensagem'] = 'Observa&ccedil;&atilde;o gravada com sucesso.';
        } else {
            $data['mensagem'] = 'Erro ao cadastrar Observa&ccedil;&atilde;o . Opera&ccedil;&atilde;o cancelada.';
        }
        $data['ficha'] = new ceatox_model($ficha_id);
        $data['lista'] = $this->ceatox_m->listarobservacao($ficha_id);
//          $this->loadView('ceatox/ceatox-ficha-observacao',$data);
        $this->session->set_flashdata('message', $data['mensagem']);
        redirect(base_url() . "ceatox/ceatox/pesquisarobservacao/$ficha_id", $data);
    }

    function gravarevolucao() {

        $ficha_id = $_POST['txtFichaID'];
        if ($this->ceatox_m->gravarevolucao()) {
            $data['mensagem'] = 'Evolu&ccedil;&atilde;o cadastrada com sucesso.';
        } else {
            $data['mensagem'] = 'Erro ao cadastrar Evolu&ccedil;&atilde;o . Opera&ccedil;&atilde;o cancelada.';
        }
        $data['lista'] = $this->ceatox_m->listarevolucao($ficha_id);
//            $this->loadView('ceatox/ceatox-ficha-evolucao',$data);
        $this->session->set_flashdata('message', $data['mensagem']);
        redirect(base_url() . "ceatox/ceatox/evolucao/$ficha_id", $data);
    }

    function pesquisarobservacao($ficha_id) {

        $data['ficha'] = new ceatox_model($ficha_id);
        $data['lista'] = $this->ceatox_m->listarobservacao($ficha_id);
        $this->loadView('ceatox/ceatox-ficha-observacao', $data);
    }

    function pdf($ficha_id) {

        $this->load->plugin('to_pdf_pi');
        $data['lista'] = $this->ceatox_m->fichaRelatorio($ficha_id);
        $this->load->view('ceatox/relatorios', $data);
    }

    /* Métodos privados */

    private function carregarView($data=null, $view=null) {
        if (!isset($data)) {
            $data['mensagem'] = '';
        }

        if ($this->utilitario->autorizar(9, $this->session->userdata('modulo')) == true) {
            $this->load->view('header', $data);
            if ($view != null) {
                $this->load->view($view, $data);
            } else {
                $this->load->view('ceatox/ceatox-lista', $data);
            }
        } else {
            $data['mensagem'] = $this->mensagem->getMensagem('login005');
            $this->load->view('header', $data);
            $this->load->view('home');
        }
        $this->load->view('footer');
    }

    function carregar($ficha_id) {
        $obj_ficha = new ceatox_model($ficha_id);

        $data['obj'] = $obj_ficha;
        $data['chave'] = 1;
        $data['chave2'] = 1;
        $data['acao'] = 1;
        $data['listaTelefonico'] = $this->ceatox_m->listarGrupoResposta(1);
        $data['listaHospitalar'] = $this->ceatox_m->listarGrupoResposta(2);
        $data['listaTipoOcorrencia'] = $this->ceatox_m->listarGrupoResposta(3);
        $data['listaCircunstancia'] = $this->ceatox_m->listarGrupoResposta(4);
        $data['listaZona'] = $this->ceatox_m->listarGrupoResposta(5);
        $data['listaLocal'] = $this->ceatox_m->listarGrupoResposta(6);
        $data['listaVia'] = $this->ceatox_m->listarGrupoResposta(7);
        $data['listaTipo'] = $this->ceatox_m->listarGrupoResposta(8);
        $data['listaAgenteToxico'] = $this->ceatox_m->listarGrupoResposta(9);
        $data['listaCentro'] = $this->ceatox_m->listarCentro();
        $data['listaTratamentoA'] = $this->ceatox_m->listarGrupoResposta(10);
        $data['listaTratamentoB'] = $this->ceatox_m->listarGrupoResposta(11);
        $data['listaTratamentoC'] = $this->ceatox_m->listarGrupoResposta(12);
        $data['listaManifClinica'] = $this->ceatox_m->listarGrupoResposta(13);
        $data['listaInternacao'] = $this->ceatox_m->listarGrupoResposta(14);
        $data['listaAnaliseToxicologica'] = $this->ceatox_m->listarGrupoResposta(15);
        $data['listaEvolucao'] = $this->ceatox_m->listarGrupoResposta(16);
        $data['listaAvaliacao'] = $this->ceatox_m->listarGrupoResposta(17);
        $data['lista'] = $this->ceatox_m->listarAgentesFicha($ficha_id);
        $this->loadView('ceatox/ceatox-ficha', $data);
    }

    function relatoriohumanaagente() {
        $this->loadView('ceatox/relatoriohumanaagente');
    }

    function impressaohumanaagente() {
        $this->load->plugin('to_pdf_pi');
        $data['datainicio'] = $_POST['txtdata_inicio'];
        $data['datafim'] = $_POST['txtdata_fim'];
        $data['lista'] = $this->ceatox_m->listarHumanaAgenteToxico();
        $this->load->view('ceatox/impressaohumanaagente', $data);
    }

    function relatoriosexoagente() {
        $this->loadView('ceatox/relatoriosexoagente');
    }

    function impressaosexoagente() {
        $this->load->plugin('to_pdf_pi');
        $data['datainicio'] = $_POST['txtdata_inicio'];
        $data['datafim'] = $_POST['txtdata_fim'];
        $data['lista'] = $this->ceatox_m->listarSexoAgenteToxico();
        $this->load->view('ceatox/impressaosexoagente', $data);
    }

    function relatoriozonaagente() {
        $this->loadView('ceatox/relatoriozonaagente');
    }

    function impressaozonaagente() {
        $this->load->plugin('to_pdf_pi');
        $data['datainicio'] = $_POST['txtdata_inicio'];
        $data['datafim'] = $_POST['txtdata_fim'];
        $data['total'] = $this->ceatox_m->listarTotalAgenteToxico();
        $data['listarural'] = $this->ceatox_m->listarzonaruralAgenteToxico();
        $data['listaurbana'] = $this->ceatox_m->listarzonaurbanaAgenteToxico();
        $this->load->view('ceatox/impressaozonaagente', $data);
    }

    function relatorioevolucaoagente() {
        $this->loadView('ceatox/relatorioevolucaoagente');
    }

    function impressaoevolucaoagente() {
        $this->load->plugin('to_pdf_pi');
        $data['datainicio'] = $_POST['txtdata_inicio'];
        $data['datafim'] = $_POST['txtdata_fim'];
        $data['total'] = $this->ceatox_m->listarTotalAgenteToxico();
        $data['listacura'] = $this->ceatox_m->listarevolucaocuraAgenteToxico();
        $data['listacuranao'] = $this->ceatox_m->listarevolucaocuranaoAgenteToxico();
        $data['listasequela'] = $this->ceatox_m->listarevolucaosequelaAgenteToxico();
        $data['listaobito'] = $this->ceatox_m->listarevolucaoobitoAgenteToxico();
        $data['listaoutro'] = $this->ceatox_m->listarevolucaooutroAgenteToxico();
        $data['listaignorado'] = $this->ceatox_m->listarevolucaoignoradoAgenteToxico();
        $this->load->view('ceatox/impressaoevolucaoagente', $data);
    }

    function relatoriocircunstanciaagente() {
        $this->loadView('ceatox/relatoriocircunstanciaagente');
    }

    function impressaocircunstanciaagente() {
        $this->load->plugin('to_pdf_pi');
        $data['datainicio'] = $_POST['txtdata_inicio'];
        $data['datafim'] = $_POST['txtdata_fim'];
        $data['listaragente'] = $this->ceatox_m->listarHumanaAgenteToxico();
        $data['listaracidenteind'] = $this->ceatox_m->listarcircunstanciaacidenteindAgenteToxico();
        $data['listaracidentecol'] = $this->ceatox_m->listarcircunstanciaacidentecolAgenteToxico();
        $data['listaracidenteamb'] = $this->ceatox_m->listarcircunstanciaacidenteambAgenteToxico();
        $data['listarocupacional'] = $this->ceatox_m->listarcircunstanciaocupacionalAgenteToxico();
        $data['listarusoterapeutico'] = $this->ceatox_m->listarcircunstanciausoterapeuticoAgenteToxico();
        $data['listarprescricao'] = $this->ceatox_m->listarcircunstanciaprescricaoAgenteToxico();
        $data['listarerro'] = $this->ceatox_m->listarcircunstanciaerroAgenteToxico();
        $data['listarautomedicacao'] = $this->ceatox_m->listarcircunstanciaautomedicacaoAgenteToxico();
        $data['listarabstinencia'] = $this->ceatox_m->listarcircunstanciaabstinenciaAgenteToxico();
        $data['listarabuso'] = $this->ceatox_m->listarcircunstanciaabusoAgenteToxico();
        $data['listaringestao'] = $this->ceatox_m->listarcircunstanciaingestaoAgenteToxico();
        $data['listarsuicidio'] = $this->ceatox_m->listarcircunstanciasuicidioAgenteToxico();
        $data['listaraborto'] = $this->ceatox_m->listarcircunstanciaabortoAgenteToxico();
        $data['listarviolencia'] = $this->ceatox_m->listarcircunstanciaviolenciaAgenteToxico();
        $data['listarignorar'] = $this->ceatox_m->listarcircunstanciaignorarAgenteToxico();
        $data['listaroutro'] = $this->ceatox_m->listarcircunstanciaoutroAgenteToxico();
        $this->load->view('ceatox/impressaocircunstanciaagente', $data);
    }

    function relatoriofaixaagente() {
        $this->loadView('ceatox/relatoriofaixaagente');
    }

    function impressaofaixaagente() {
        $this->load->plugin('to_pdf_pi');
        $data['datainicio'] = $_POST['txtdata_inicio'];
        $data['datafim'] = $_POST['txtdata_fim'];
        $data['listaragente'] = $this->ceatox_m->listarHumanaAgenteToxico();
        $data['listarfaixa0104'] = $this->ceatox_m->listarfaixa0104AgenteToxico();
        $data['listarfaixa0509'] = $this->ceatox_m->listarfaixa0509AgenteToxico();
        $data['listarfaixa1014'] = $this->ceatox_m->listarfaixa1014AgenteToxico();
        $data['listarfaixa1519'] = $this->ceatox_m->listarfaixa1519AgenteToxico();
        $data['listarfaixa2029'] = $this->ceatox_m->listarfaixa2029AgenteToxico();
        $data['listarfaixa3039'] = $this->ceatox_m->listarfaixa3039AgenteToxico();
        $data['listarfaixa4049'] = $this->ceatox_m->listarfaixa4049AgenteToxico();
        $data['listarfaixa5059'] = $this->ceatox_m->listarfaixa5059AgenteToxico();
        $data['listarfaixa6069'] = $this->ceatox_m->listarfaixa6069AgenteToxico();
        $data['listarfaixa7079'] = $this->ceatox_m->listarfaixa7079AgenteToxico();
        $data['listarfaixa80'] = $this->ceatox_m->listarfaixa80AgenteToxico();
        $this->load->view('ceatox/impressaofaixaagente', $data);
    }

    function relatorioobitoagente() {
        $this->loadView('ceatox/relatorioobitoagente');
    }

    static function cmp_obj($a, $b) {
        $al = strtolower($a->agente);
        $bl = strtolower($b->agente);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }

    function impressaoobitoagente() {
        $this->load->plugin('to_pdf_pi');
        $data['datainicio'] = $_POST['txtdata_inicio'];
        $data['datafim'] = $_POST['txtdata_fim'];
        $listarobito = $this->ceatox_m->listarobitoagenteToxico();
        usort($listarobito, array("Ceatox", "cmp_obj"));
        $data['listarobito'] = $listarobito;
        $coluna = "";
        foreach ($listarobito as $key => $value) {
            if ($coluna == $value->agente) {
                unset($listarobito[$key]);
            }
            if ($coluna != $value->agente) {
                $coluna = $value->agente;
            }
        }
        $listarobito = array_values($listarobito);

        $data['verificador'] = $listarobito;

        $this->load->view('ceatox/impressaoobitoagente', $data);
    }

}